<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
    <style>
        li {
            list-style: none;
        }

        div {
            margin: 5px;
        }
    </style>
</head>

<body>
    <div id="app">
        <div>
            <h3>单行文本框</h3>
            <p>
                请输入:<input type="text" v-model="message">
            </p>
            <p>
                <!-- input输入框的内容发生改变 => data中的数据也会同步更新 -->
                message:{{message}}
            </p>
            <p>
                <!-- 当数据改变 视图更新 input框的value值改变 -->
                <button @click="message=''">清空</button>
            </p>
        </div>

        <div>
            <h3>多行文本框</h3>
            <p>
                请输入:<textarea type="text" v-model="msg"></textarea>
            </p>
            <p>
                <!-- input输入框的内容发生改变 => data中的数据也会同步更新 -->
                msg:{{msg}}
            </p>
            <p>
                <!-- 当数据改变 视图更新 input框的value值改变 -->
                <button @click="msg=''">清空</button>
            </p>
        </div>
        <div>
            <h3>复选框(单个 是否选中 checked)</h3>
            <p>
                请选择: <input type="checkbox" v-model="isChecked" value="1111">
            </p>
            <p>
                isChecked:{{isChecked}}
            </p>
            <!-- <p>
                <button @click="msg=''">清空</button>
            </p> -->
        </div>
        <div>
            <h3>复选框(单个 能否和value绑定)</h3>
            <p>
                请选择: <input type="checkbox" v-model="abc" true-value="1" false-value="0">
            </p>
            <p>
                abc:{{abc}}
            </p>
        </div>
        <div>
            <h3>复选框(多个 -> 选中的元素的值(数组) -> value )</h3>
            <p>
                爱好:
                <input type="checkbox" name="hobby" v-model="hobby" value="sing">
                <input type="checkbox" name="hobby" v-model="hobby" value="dance">
                <input type="checkbox" name="hobby" v-model="hobby" value="rap">
            </p>
            <p>
                hobby:{{hobby}}
            </p>

        </div>

        <div>
            <h3>单选框 (选中的元素的值(单个) -> value)</h3>
            <p>
                性别:
                <input type="radio" name="sex" v-model="sex" value="man">
                <input type="radio" name="sex" v-model="sex" value="woman">
                <input type="radio" name="sex" v-model="sex" value="secret">
            </p>
            <p>
                sex:{{sex}}
            </p>

        </div>

        <div>
            <h3>下拉框</h3>
            <p>
                <select v-model="year">
                    <option value="">请选择年份</option>
                    <option value="2018">2018</option>
                    <option value="2019">2019</option>
                    <option value="2020">2020</option>
                    <option value="2021">2021</option>
                    <option value="2022">2022</option>
                    <option value="2023">2023</option>
                </select>
            </p>
            <p>
                year:{{year}}
            </p>

        </div>
    </div>
</body>
<script>

    // 可以用 v-model 指令在表单 <input>、<textarea> 及 <select> 元素上创建双向数据绑定。
    // 它会根据控件类型自动选取正确的方法来更新元素
    // v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据

    // 双向数据绑定
    // 操作视图(view) -> 会影响数据    (输入框内容发生改变 -> 内容同步到数据)
    // 操作数据(Model) -> 会影响视图


    // v-model 在内部为不同的输入元素使用不同的 property 并抛出不同的事件：
    // text 和 textarea 元素使用 value property 和 input 事件；
    // checkbox 和 radio 使用 checked property 和 change 事件；
    // select 字段将 value 作为 prop 并将 change 作为事件。

    var vm = new Vue({
        el: "#app",
        data: {
            message: "",
            msg: "",
            isChecked: "",
            hobby: [],
            sex: "",
            year: "",
            abc: "1",
        },
        methods: {

        }

    })



</script>

</html>